#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project : gtmsAutoTestProject 
@File    : sqliteControl.py
@IDE     : PyCharm 
@Author  : Mario
@Date    : 2022/9/7 11:01
@Describe: SQLite3
"""
import os
import sqlite3

_SLASH = os.sep
# 项目基础目录
PROJECT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# DB文件存放目录
SQL_FILE = os.path.join(PROJECT_PATH, "sqlUtils" + _SLASH + "db" + _SLASH)


class SqliteHelper:
    def __init__(self, db_name: str):
        """
        构造函数
        :param db_name: 需要操作的数据库文件
        """
        self.conn = sqlite3.connect(SQL_FILE + db_name)
        self.cursor = self.conn.cursor()

    def create_table(self, create_sql: str):
        """
        创建表
        :param create_sql: sql语句
        :return:
        """
        self.cursor.execute(create_sql)

    def find_data(self, select_sql: str):
        """
        查询数据
        :param select_sql: 查询语句
        :return:
        """
        self.cursor.execute(select_sql)
        return self.cursor.fetchall()

    def db_data_operate(self, operate_sql: str):
        """
        数据库操作（增删改）
        :param operate_sql: 增删改语句
        :return:
        """
        print(operate_sql)
        self.cursor.execute(operate_sql)
        self.conn.commit()

    def db_close(self):
        """
        关闭数据库连接
        :return:
        """
        self.cursor.close()
        self.conn.close()


if __name__ == '__main__':
    test = SqliteHelper('support.db')
    sql = """
    CREATE TABLE overseas_upload_order
(
    id           INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,       -- 主键
    brand_code   CHAR(10)  DEFAULT NULL,                           -- 品牌编码
    shop_code    CHAR(10)  DEFAULT NULL,                           -- 门店编码
    environment  CHAR(10)                          NOT NULL,       -- 环境
    order_no     CHAR(10)  DEFAULT NULL,                           -- 订单号
    refund_order CHAR(10)                          NOT NULL,       -- 是否为逆向单(0-正向单,1-逆向单)
    payload      CHAR(100) DEFAULT NULL,                           -- 请求数据
    created_by   CHAR(20)  DEFAULT NULL,                           -- 创建人
    updated_by   CHAR(20)  DEFAULT NULL,                           -- 修改人
    created_at   DATE      DEFAULT (datetime('now', 'localtime')), -- 创建时间
    updated_at   DATE      DEFAULT (datetime('now', 'localtime'))  -- 更新时间
); -- 海外平台订单数据上传表
    """
    test.create_table(sql)
    test.db_close()
